﻿#ifndef _OI_PLSCANNERCORE_DEVICE_HPP_
#define _OI_PLSCANNERCORE_DEVICE_HPP_

#include "PLScannerCore/OiPLScannerCore.hpp"

namespace Oi
{
    namespace PLScannerCore
    {
        //配置文件设置 相机名称即IP {"192.168.100.102", "192.168.100.101"} 第一个为主传感器也是1号传感器。
        class OI_PLSCANNER_CORE_API Device : public QObject
        {
        public:
            enum DeviceStatus
            {
                DS_Linked = 0x0001, 
                DS_Capture = 0x0002,
            };
        public:
            Device() {}

        public:
            virtual void init() = 0; // 设备初始化
            virtual void exit() = 0; //资源释放

        public:
            virtual void startCapture() = 0; //开始采集 也就是开始保存
            virtual void stopCapture(int wait) = 0; //停止采集 也就是停止保存

            virtual void abortDownload() = 0;

        public:
            virtual bool getInfos(QMap<QDateTime, QString>& infos) = 0; // infos数据信息，也就是把文件名称 时间写进去
            virtual bool getProifile(std::vector<double>& profile, QVariantMap& infos, const int timeout = -1) = 0; //获取最新一条数据, 超时返回false, infos数据信息，也就是把文件名称 时间写进去
            virtual bool getValue(double& profile, const int timeout = -1) = 0; //获取当前值, 超时返回false

            virtual bool loadFile(const QString file, std::vector<double>& profile) = 0;
            virtual bool getTemperature1(double& temperature) = 0;
            virtual bool getTemperature2(double& temperature) = 0;


        public:
            virtual int getStatus() = 0;
        };
    }
}

#endif 
